<?php
//首页控制器类
class CategoryController extends CommonController{
    private $model;
    public function __init(){
        parent::__init();
        $this->model=K("Category");
    }
    /**
     * [index 分类列表]
     * @return [type] [description]
     */
    public function index(){
        $data=$this->model->get_data();
    	$data= Data::tree($data,'cname','cid','pid');
        // p($data);
        $this->assign('data',$data);
        //显示视图
        $this->display();
    }
    /**
     * [add 增加顶级分类]
     */
    public function add(){
        if(IS_POST){
            $this->model->add_data();
            $this->success("增加成功",U("index")); 
        }
        $typeData=K('Type')->get_data();
        $this->assign('typeData',$typeData);
        //显示视图
        $this->display();
    }
    /**
     * [add_son 增加子分类]
     */
    public function add_son(){
        if(IS_POST){
            //执行自动验证
            // p($_POST);die();
            if($this->model->create()){
                $this->model->add_data();
                $this->success('添加成功',U('index'));
            }
            $this->error($this->model->error);
        }
        // 父级分类数据
        $cid = Q('get.cid', 0, 'intval');
        $oldData = $this->model->get_one_data(array('cid'=>$cid));
        $this->assign('oldData', $oldData);
        //得到所属分类
        $data = $this->model->get_one_data(array('cid'=>Q('get.cid', 0, 'intval')));
        $this->assign('fatherCate', $data);
        $this->display();
        //显示视图
    }
    /**
     * [del 删除分类]
     * @return [type] [description]
     */
    public function del(){

        if($this->model->del_data(Q('get.cid', 0, 'intval'))){
            $this->success('删除成功');
        }else{
            $this->error($this->model->error);
        }
    }
    // /**
    //  * [edit 修改分类]
    //  * @return [type] [description]
    //  */
    public function edit(){
        if(IS_POST){
            $cid = Q('post.cid', 0, 'intval');
            // p($cid);die();
            $this->model->update_data(array('cid'=>$cid));
            $this->success('修改成功',U('index'));
        }
        //获得旧数据，分配向视图层
        $cid = Q('get.cid', 0, 'intval');
        $oldData = $this->model->get_one_data(array('cid'=>$cid));
        $this->assign('oldData', $oldData);


        //获得所有分类
        $cateData = $this->model->get_data();
        $this->assign('cateData',$cateData);

        // 获得所有类型
        $typeData=K('Type')->get_data();
        $this->assign('typeData',$typeData);

        $this->display();
    }
    /**
     * [ajax_change_stat 异步更改状态]
     * @return [type] [description]
     */
    public function ajax_change_stat(){
        if(!IS_AJAX) $this->error('非法请求');
        $this->model->change_stat();
        $arr = array(
            'status' => 1,
            'message'=>'修改成功',
            );
        $this->ajax($arr);

    }
    public function del_all(){
        if($this->model->del_alldata()){
            $this->success('删除成功');
        }else{
            $this->error($this->model->error);
        }
    }
    public function ajax_get_sonid(){
        // 判断是否AJAX
        if(!IS_AJAX) $this->error('非法请求');
        //获得所有子级
        $data = $this->model->get_data();
        // 执行一个获得子分类数据的方法
        $sonData = $this->model->get_son_data($data, Q('post.cid', 0, 'intval'));
        //异步返回
        $this->ajax($sonData);
    }
}
